matplotlib tips¶
定型Import¶
import matplotlib as mpl
import matplotlib.pyplot as plt
#matplotlib.style.use("ggplot")
%matplotlib inline
matplotlib¶
複数グラフ¶
figure, axes = plt.subplots(3, 2, sharex="col", sharey="row")
df.plot(ax=axes[0][0], title="title")
## axes: ndarray
axes[0, 0].legend(bbox_to_anchor=(2, 2), ncol=3)
axes[0, 1].legend_.remove()
axes[0, 0].set_ylabel("y label")
axes[0, 0].set_ylim([0, 1])
plt.tight_layout()
subplotsで作成された軸配列を1次元にする¶
# N行 x M列 (2<=N,M)のグラフを描画する時2重ループになってめんどう
# subplotsの戻り値axesはndarrayなのでravel, flattenで1次に変換できる
import matplotlib.pyplot as plt
columns = [c for c in df.columns if c.startswith('y_')]
fig, axes = plt.subplots(2, len(columns) // 2, figsize=(len(columns) * 4, 4 * 2))
for c, ax in zip(columns, axes.flatten()):
df.plot(x="x", y=c, ax=ax)
日本語font¶
- ~.ipython\profile_default に設定ファイルを作成しておく
ipython profile create
- C:\Windows\Fonts からフォントを選び
- C:\Anaconda3\pkgs\matplotlib-1.4.3-np19py34_1\Lib\site-packages\matplotlib\mpl-data\fonts\ttf にコピーして
- 設定ファイルにフォント設定を追加する
ipython_kernel_config.py
c.InlineBackend.rc = {
'font.family': 'meiryo',
}
iimport matplotlib.font_manager as fm
# 現在フォント
matplotlib.rcParams.get('font.family')
prop = fm.FontProperties(fname="ttc or ttf")
# これをplot時に渡す(めんどう
- 設定ファイルではWindowsの場合うまくいかなかった
- ttc直接指定の場合はうまくいく
- Windowsの場合、ttcをttfに分解して設定ファイルにて指定すれば良い?
利用可能なフォント一覧¶
import matplotlib.font_manager as fm
font_files = pd.DataFrame(fm.findSystemFonts(), columns=list("a"))
font_files.head()
mac¶
#Font Book.appでフォントファイルを見つけて中身を確認する
#Go2ShellHelper.appとかあると便利
find `pyenv prefix` -name matplotlib
cd 上記で見つけたmatplotlibのディレクトリ/mpl-data/
cp matplotlibrc ~/.matplotlib #にテンプレートとしてCopy
#font.family : 日本語可能フォント名と修正
cp font_file.ttf matplotlibのディレクトリ/mpl-data/fonts/